<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.12"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Os1: g2o::BlockSolver&lt; Traits &gt; Class Template Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">Os1
   &#160;<span id="projectnumber">1</span>
   </div>
   <div id="projectbrief">OrbSlam2 documentado y modificado</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.12 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
  initMenu('',true,'Search');
  $(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('classg2o_1_1_block_solver.html','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-static-attribs">Static Public Attributes</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="#pro-attribs">Protected Attributes</a> &#124;
<a href="classg2o_1_1_block_solver-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">g2o::BlockSolver&lt; Traits &gt; Class Template Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>Implementation of a solver operating on the blocks of the Hessian.  
 <a href="classg2o_1_1_block_solver.html#details">More...</a></p>

<p><code>#include &lt;<a class="el" href="block__solver_8h_source.html">block_solver.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for g2o::BlockSolver&lt; Traits &gt;:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="classg2o_1_1_block_solver__inherit__graph.svg" width="190" height="187"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
<div class="dynheader">
Collaboration diagram for g2o::BlockSolver&lt; Traits &gt;:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="classg2o_1_1_block_solver__coll__graph.svg" width="1874" height="639"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public Types</h2></td></tr>
<tr class="memitem:a465b1252905d90fd69b4243716620c45"><td class="memItemLeft" align="right" valign="top">typedef Traits::LandmarkHessianType&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_block_solver.html#a465b1252905d90fd69b4243716620c45">LandmarkHessianType</a></td></tr>
<tr class="separator:a465b1252905d90fd69b4243716620c45"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afd898a666343291129d37a979e23ded6"><td class="memItemLeft" align="right" valign="top">typedef Traits::LandmarkMatrixType&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_block_solver.html#afd898a666343291129d37a979e23ded6">LandmarkMatrixType</a></td></tr>
<tr class="separator:afd898a666343291129d37a979e23ded6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a19ade5e432f32e46557192ae75074304"><td class="memItemLeft" align="right" valign="top">typedef Traits::LandmarkVectorType&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_block_solver.html#a19ade5e432f32e46557192ae75074304">LandmarkVectorType</a></td></tr>
<tr class="separator:a19ade5e432f32e46557192ae75074304"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a717fa8cb1dd5a212e41d8ebef67955e6"><td class="memItemLeft" align="right" valign="top">typedef Traits::LinearSolverType&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_block_solver.html#a717fa8cb1dd5a212e41d8ebef67955e6">LinearSolverType</a></td></tr>
<tr class="separator:a717fa8cb1dd5a212e41d8ebef67955e6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0e7f862860a1e3391cec3cfaf69c48be"><td class="memItemLeft" align="right" valign="top">typedef Traits::PoseHessianType&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_block_solver.html#a0e7f862860a1e3391cec3cfaf69c48be">PoseHessianType</a></td></tr>
<tr class="separator:a0e7f862860a1e3391cec3cfaf69c48be"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aed8b44e394d2f19ca03c87adf90cc97c"><td class="memItemLeft" align="right" valign="top">typedef Traits::PoseLandmarkHessianType&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_block_solver.html#aed8b44e394d2f19ca03c87adf90cc97c">PoseLandmarkHessianType</a></td></tr>
<tr class="separator:aed8b44e394d2f19ca03c87adf90cc97c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a96bf60b923f816086cd2f24de38736ec"><td class="memItemLeft" align="right" valign="top">typedef Traits::PoseLandmarkMatrixType&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_block_solver.html#a96bf60b923f816086cd2f24de38736ec">PoseLandmarkMatrixType</a></td></tr>
<tr class="separator:a96bf60b923f816086cd2f24de38736ec"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8c7c43d361bd31e3e0353889ba703bc0"><td class="memItemLeft" align="right" valign="top">typedef Traits::PoseMatrixType&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_block_solver.html#a8c7c43d361bd31e3e0353889ba703bc0">PoseMatrixType</a></td></tr>
<tr class="separator:a8c7c43d361bd31e3e0353889ba703bc0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a65d51b9281e2e2597df05eb00801ee76"><td class="memItemLeft" align="right" valign="top">typedef Traits::PoseVectorType&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_block_solver.html#a65d51b9281e2e2597df05eb00801ee76">PoseVectorType</a></td></tr>
<tr class="separator:a65d51b9281e2e2597df05eb00801ee76"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a04701a223a14708c9c84ce4d7e7af3f6"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_block_solver.html#a04701a223a14708c9c84ce4d7e7af3f6">BlockSolver</a> (<a class="el" href="classg2o_1_1_block_solver.html#a717fa8cb1dd5a212e41d8ebef67955e6">LinearSolverType</a> *<a class="el" href="classg2o_1_1_block_solver.html#af71279eea2391daa4d7528da28107f1c">linearSolver</a>)</td></tr>
<tr class="memdesc:a04701a223a14708c9c84ce4d7e7af3f6"><td class="mdescLeft">&#160;</td><td class="mdescRight">allocate a block solver ontop of the underlying linear solver.  <a href="#a04701a223a14708c9c84ce4d7e7af3f6">More...</a><br /></td></tr>
<tr class="separator:a04701a223a14708c9c84ce4d7e7af3f6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a17e4392d3cca9a9d7cf38bb46d073b86"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_block_solver.html#a17e4392d3cca9a9d7cf38bb46d073b86">buildStructure</a> (bool zeroBlocks=false)</td></tr>
<tr class="memdesc:a17e4392d3cca9a9d7cf38bb46d073b86"><td class="mdescLeft">&#160;</td><td class="mdescRight">build the structure of the system  <a href="#a17e4392d3cca9a9d7cf38bb46d073b86">More...</a><br /></td></tr>
<tr class="separator:a17e4392d3cca9a9d7cf38bb46d073b86"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2654a8d52f38e5ce23720a8de302e2e7"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_block_solver.html#a2654a8d52f38e5ce23720a8de302e2e7">buildSystem</a> ()</td></tr>
<tr class="memdesc:a2654a8d52f38e5ce23720a8de302e2e7"><td class="mdescLeft">&#160;</td><td class="mdescRight">build the current system  <a href="#a2654a8d52f38e5ce23720a8de302e2e7">More...</a><br /></td></tr>
<tr class="separator:a2654a8d52f38e5ce23720a8de302e2e7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac21cd7e2c9b8a1414f7a2dccb0d30a0e"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_block_solver.html#ac21cd7e2c9b8a1414f7a2dccb0d30a0e">computeMarginals</a> (<a class="el" href="classg2o_1_1_sparse_block_matrix.html">SparseBlockMatrix</a>&lt; MatrixXd &gt; &amp;spinv, const std::vector&lt; std::pair&lt; int, int &gt; &gt; &amp;blockIndices)</td></tr>
<tr class="memdesc:ac21cd7e2c9b8a1414f7a2dccb0d30a0e"><td class="mdescLeft">&#160;</td><td class="mdescRight">computes the block diagonal elements of the pattern specified in the input and stores them in given <a class="el" href="classg2o_1_1_sparse_block_matrix.html" title="Sparse matrix which uses blocks. ">SparseBlockMatrix</a>  <a href="#ac21cd7e2c9b8a1414f7a2dccb0d30a0e">More...</a><br /></td></tr>
<tr class="separator:ac21cd7e2c9b8a1414f7a2dccb0d30a0e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8bf01018abc3bfddfa3b29a380a1d6cb"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_block_solver.html#a8bf01018abc3bfddfa3b29a380a1d6cb">init</a> (<a class="el" href="classg2o_1_1_sparse_optimizer.html">SparseOptimizer</a> *optmizer, bool online=false)</td></tr>
<tr class="memdesc:a8bf01018abc3bfddfa3b29a380a1d6cb"><td class="mdescLeft">&#160;</td><td class="mdescRight">initialize the solver, called once before the first iteration  <a href="#a8bf01018abc3bfddfa3b29a380a1d6cb">More...</a><br /></td></tr>
<tr class="separator:a8bf01018abc3bfddfa3b29a380a1d6cb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af71279eea2391daa4d7528da28107f1c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classg2o_1_1_linear_solver.html">LinearSolver</a>&lt; <a class="el" href="classg2o_1_1_block_solver.html#a8c7c43d361bd31e3e0353889ba703bc0">PoseMatrixType</a> &gt; *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_block_solver.html#af71279eea2391daa4d7528da28107f1c">linearSolver</a> () const</td></tr>
<tr class="separator:af71279eea2391daa4d7528da28107f1c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6eb8f0729e8bcd760e629421cfa7202c"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_block_solver.html#a6eb8f0729e8bcd760e629421cfa7202c">multiplyHessian</a> (double *dest, const double *src) const</td></tr>
<tr class="memdesc:a6eb8f0729e8bcd760e629421cfa7202c"><td class="mdescLeft">&#160;</td><td class="mdescRight">compute dest = H * src  <a href="#a6eb8f0729e8bcd760e629421cfa7202c">More...</a><br /></td></tr>
<tr class="separator:a6eb8f0729e8bcd760e629421cfa7202c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2136931d7aa2f54df5207556c4685809"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_block_solver.html#a2136931d7aa2f54df5207556c4685809">restoreDiagonal</a> ()</td></tr>
<tr class="memdesc:a2136931d7aa2f54df5207556c4685809"><td class="mdescLeft">&#160;</td><td class="mdescRight">restore a previosly made backup of the diagonal  <a href="#a2136931d7aa2f54df5207556c4685809">More...</a><br /></td></tr>
<tr class="separator:a2136931d7aa2f54df5207556c4685809"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a51563178d31f3eae6ec61993ea069a77"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_block_solver.html#a51563178d31f3eae6ec61993ea069a77">saveHessian</a> (const std::string &amp;fileName) const</td></tr>
<tr class="memdesc:a51563178d31f3eae6ec61993ea069a77"><td class="mdescLeft">&#160;</td><td class="mdescRight">write the hessian to disk using the specified file name  <a href="#a51563178d31f3eae6ec61993ea069a77">More...</a><br /></td></tr>
<tr class="separator:a51563178d31f3eae6ec61993ea069a77"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a382173946f1dd929a625e3708c959883"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_block_solver.html#a382173946f1dd929a625e3708c959883">schur</a> ()</td></tr>
<tr class="memdesc:a382173946f1dd929a625e3708c959883"><td class="mdescLeft">&#160;</td><td class="mdescRight">should the solver perform the schur complement or not  <a href="#a382173946f1dd929a625e3708c959883">More...</a><br /></td></tr>
<tr class="separator:a382173946f1dd929a625e3708c959883"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acc63a23e5b35e4f72d46dc22719aa56f"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_block_solver.html#acc63a23e5b35e4f72d46dc22719aa56f">setLambda</a> (double lambda, bool backup=false)</td></tr>
<tr class="memdesc:acc63a23e5b35e4f72d46dc22719aa56f"><td class="mdescLeft">&#160;</td><td class="mdescRight">update the system while performing Levenberg, i.e., modifying the diagonal components of A by doing += lambda along the main diagonal of the Matrix.  <a href="#acc63a23e5b35e4f72d46dc22719aa56f">More...</a><br /></td></tr>
<tr class="separator:acc63a23e5b35e4f72d46dc22719aa56f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6dd8e7e7a099410005cb96ff874d8866"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_block_solver.html#a6dd8e7e7a099410005cb96ff874d8866">setSchur</a> (bool s)</td></tr>
<tr class="separator:a6dd8e7e7a099410005cb96ff874d8866"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1bff5dc13e3408fa76c019347104acd0"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_block_solver.html#a1bff5dc13e3408fa76c019347104acd0">setWriteDebug</a> (bool <a class="el" href="classg2o_1_1_block_solver.html#aab81798b80dcb6c4182fa1d510914234">writeDebug</a>)</td></tr>
<tr class="memdesc:a1bff5dc13e3408fa76c019347104acd0"><td class="mdescLeft">&#160;</td><td class="mdescRight">write debug output of the Hessian if system is not positive definite  <a href="#a1bff5dc13e3408fa76c019347104acd0">More...</a><br /></td></tr>
<tr class="separator:a1bff5dc13e3408fa76c019347104acd0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a589a75a131cce100c1945ad2786214d7"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_block_solver.html#a589a75a131cce100c1945ad2786214d7">solve</a> ()</td></tr>
<tr class="memdesc:a589a75a131cce100c1945ad2786214d7"><td class="mdescLeft">&#160;</td><td class="mdescRight">solve Ax = b  <a href="#a589a75a131cce100c1945ad2786214d7">More...</a><br /></td></tr>
<tr class="separator:a589a75a131cce100c1945ad2786214d7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a68dc822ce48e80ceacce69c7bd029674"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_block_solver.html#a68dc822ce48e80ceacce69c7bd029674">supportsSchur</a> ()</td></tr>
<tr class="memdesc:a68dc822ce48e80ceacce69c7bd029674"><td class="mdescLeft">&#160;</td><td class="mdescRight">does this solver support the Schur complement for solving a system consisting of poses and landmarks.  <a href="#a68dc822ce48e80ceacce69c7bd029674">More...</a><br /></td></tr>
<tr class="separator:a68dc822ce48e80ceacce69c7bd029674"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a662473598270cdf89075607f87440759"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_block_solver.html#a662473598270cdf89075607f87440759">updateStructure</a> (const std::vector&lt; <a class="el" href="classg2o_1_1_hyper_graph_1_1_vertex.html">HyperGraph::Vertex</a> *&gt; &amp;vset, const <a class="el" href="classg2o_1_1_hyper_graph.html#a5e2970e236c0dcb4eff7c205d7b6b4ae">HyperGraph::EdgeSet</a> &amp;edges)</td></tr>
<tr class="memdesc:a662473598270cdf89075607f87440759"><td class="mdescLeft">&#160;</td><td class="mdescRight">update the structures for online processing  <a href="#a662473598270cdf89075607f87440759">More...</a><br /></td></tr>
<tr class="separator:a662473598270cdf89075607f87440759"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aab81798b80dcb6c4182fa1d510914234"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_block_solver.html#aab81798b80dcb6c4182fa1d510914234">writeDebug</a> () const</td></tr>
<tr class="separator:aab81798b80dcb6c4182fa1d510914234"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7587b13ec3494c00ad95a3d0ce7fd9a9"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_block_solver.html#a7587b13ec3494c00ad95a3d0ce7fd9a9">~BlockSolver</a> ()</td></tr>
<tr class="separator:a7587b13ec3494c00ad95a3d0ce7fd9a9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classg2o_1_1_block_solver_base"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classg2o_1_1_block_solver_base')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classg2o_1_1_block_solver_base.html">g2o::BlockSolverBase</a></td></tr>
<tr class="memitem:a59aabc7d24599a7f7b251cc0040bcb0a inherit pub_methods_classg2o_1_1_block_solver_base"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_block_solver_base.html#a59aabc7d24599a7f7b251cc0040bcb0a">~BlockSolverBase</a> ()</td></tr>
<tr class="separator:a59aabc7d24599a7f7b251cc0040bcb0a inherit pub_methods_classg2o_1_1_block_solver_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classg2o_1_1_solver"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classg2o_1_1_solver')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classg2o_1_1_solver.html">g2o::Solver</a></td></tr>
<tr class="memitem:ac32a7e75275f6595a66d948a0fc2984a inherit pub_methods_classg2o_1_1_solver"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_solver.html#ac32a7e75275f6595a66d948a0fc2984a">additionalVectorSpace</a> () const</td></tr>
<tr class="separator:ac32a7e75275f6595a66d948a0fc2984a inherit pub_methods_classg2o_1_1_solver"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3212ad9d80f8f5ad15b72c2b55000095 inherit pub_methods_classg2o_1_1_solver"><td class="memItemLeft" align="right" valign="top">double *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_solver.html#a3212ad9d80f8f5ad15b72c2b55000095">b</a> ()</td></tr>
<tr class="memdesc:a3212ad9d80f8f5ad15b72c2b55000095 inherit pub_methods_classg2o_1_1_solver"><td class="mdescLeft">&#160;</td><td class="mdescRight">return b, the right hand side of the system  <a href="classg2o_1_1_solver.html#a3212ad9d80f8f5ad15b72c2b55000095">More...</a><br /></td></tr>
<tr class="separator:a3212ad9d80f8f5ad15b72c2b55000095 inherit pub_methods_classg2o_1_1_solver"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a812d5cad59fed145c3f47bcf99419a97 inherit pub_methods_classg2o_1_1_solver"><td class="memItemLeft" align="right" valign="top">const double *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_solver.html#a812d5cad59fed145c3f47bcf99419a97">b</a> () const</td></tr>
<tr class="separator:a812d5cad59fed145c3f47bcf99419a97 inherit pub_methods_classg2o_1_1_solver"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab472c69fa089382242a75be76e8f883e inherit pub_methods_classg2o_1_1_solver"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_solver.html#ab472c69fa089382242a75be76e8f883e">levenberg</a> () const</td></tr>
<tr class="memdesc:ab472c69fa089382242a75be76e8f883e inherit pub_methods_classg2o_1_1_solver"><td class="mdescLeft">&#160;</td><td class="mdescRight">the system is Levenberg-Marquardt  <a href="classg2o_1_1_solver.html#ab472c69fa089382242a75be76e8f883e">More...</a><br /></td></tr>
<tr class="separator:ab472c69fa089382242a75be76e8f883e inherit pub_methods_classg2o_1_1_solver"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a266bc31d289e824de6166522579ed385 inherit pub_methods_classg2o_1_1_solver"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classg2o_1_1_sparse_optimizer.html">SparseOptimizer</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_solver.html#a266bc31d289e824de6166522579ed385">optimizer</a> () const</td></tr>
<tr class="memdesc:a266bc31d289e824de6166522579ed385 inherit pub_methods_classg2o_1_1_solver"><td class="mdescLeft">&#160;</td><td class="mdescRight">the optimizer (graph) on which the solver works  <a href="classg2o_1_1_solver.html#a266bc31d289e824de6166522579ed385">More...</a><br /></td></tr>
<tr class="separator:a266bc31d289e824de6166522579ed385 inherit pub_methods_classg2o_1_1_solver"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad35b33cee11586c8adea12cd6949f74a inherit pub_methods_classg2o_1_1_solver"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_solver.html#ad35b33cee11586c8adea12cd6949f74a">setAdditionalVectorSpace</a> (size_t s)</td></tr>
<tr class="separator:ad35b33cee11586c8adea12cd6949f74a inherit pub_methods_classg2o_1_1_solver"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a01e21c08d7ec8c8051de565b5c314fa1 inherit pub_methods_classg2o_1_1_solver"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_solver.html#a01e21c08d7ec8c8051de565b5c314fa1">setLevenberg</a> (bool <a class="el" href="classg2o_1_1_solver.html#ab472c69fa089382242a75be76e8f883e">levenberg</a>)</td></tr>
<tr class="separator:a01e21c08d7ec8c8051de565b5c314fa1 inherit pub_methods_classg2o_1_1_solver"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af27b647cdc19d99ea5378b443e118bb0 inherit pub_methods_classg2o_1_1_solver"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_solver.html#af27b647cdc19d99ea5378b443e118bb0">setOptimizer</a> (<a class="el" href="classg2o_1_1_sparse_optimizer.html">SparseOptimizer</a> *<a class="el" href="classg2o_1_1_solver.html#a266bc31d289e824de6166522579ed385">optimizer</a>)</td></tr>
<tr class="separator:af27b647cdc19d99ea5378b443e118bb0 inherit pub_methods_classg2o_1_1_solver"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af097bdf5c8dc4bb017a2cec4038d5a56 inherit pub_methods_classg2o_1_1_solver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_solver.html#af097bdf5c8dc4bb017a2cec4038d5a56">Solver</a> ()</td></tr>
<tr class="separator:af097bdf5c8dc4bb017a2cec4038d5a56 inherit pub_methods_classg2o_1_1_solver"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7a5907ca706eef77acce4ab534857c96 inherit pub_methods_classg2o_1_1_solver"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_solver.html#a7a5907ca706eef77acce4ab534857c96">vectorSize</a> () const</td></tr>
<tr class="memdesc:a7a5907ca706eef77acce4ab534857c96 inherit pub_methods_classg2o_1_1_solver"><td class="mdescLeft">&#160;</td><td class="mdescRight">return the size of the solution vector (x) and b  <a href="classg2o_1_1_solver.html#a7a5907ca706eef77acce4ab534857c96">More...</a><br /></td></tr>
<tr class="separator:a7a5907ca706eef77acce4ab534857c96 inherit pub_methods_classg2o_1_1_solver"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acb097d8568624a1f3af4dba808e5593b inherit pub_methods_classg2o_1_1_solver"><td class="memItemLeft" align="right" valign="top">double *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_solver.html#acb097d8568624a1f3af4dba808e5593b">x</a> ()</td></tr>
<tr class="memdesc:acb097d8568624a1f3af4dba808e5593b inherit pub_methods_classg2o_1_1_solver"><td class="mdescLeft">&#160;</td><td class="mdescRight">return x, the solution vector  <a href="classg2o_1_1_solver.html#acb097d8568624a1f3af4dba808e5593b">More...</a><br /></td></tr>
<tr class="separator:acb097d8568624a1f3af4dba808e5593b inherit pub_methods_classg2o_1_1_solver"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad3c537aa5890e1694766c8aee46912a0 inherit pub_methods_classg2o_1_1_solver"><td class="memItemLeft" align="right" valign="top">const double *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_solver.html#ad3c537aa5890e1694766c8aee46912a0">x</a> () const</td></tr>
<tr class="separator:ad3c537aa5890e1694766c8aee46912a0 inherit pub_methods_classg2o_1_1_solver"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3b4a7c818ea0904772bc8bea6f1bbe86 inherit pub_methods_classg2o_1_1_solver"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_solver.html#a3b4a7c818ea0904772bc8bea6f1bbe86">~Solver</a> ()</td></tr>
<tr class="separator:a3b4a7c818ea0904772bc8bea6f1bbe86 inherit pub_methods_classg2o_1_1_solver"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-attribs"></a>
Static Public Attributes</h2></td></tr>
<tr class="memitem:a2d5e499f65a71985a8256e98c1608dd9"><td class="memItemLeft" align="right" valign="top">static const int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_block_solver.html#a2d5e499f65a71985a8256e98c1608dd9">LandmarkDim</a> = Traits::LandmarkDim</td></tr>
<tr class="separator:a2d5e499f65a71985a8256e98c1608dd9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9a68f557c8e04cd76565fc45e1747e45"><td class="memItemLeft" align="right" valign="top">static const int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_block_solver.html#a9a68f557c8e04cd76565fc45e1747e45">PoseDim</a> = Traits::PoseDim</td></tr>
<tr class="separator:a9a68f557c8e04cd76565fc45e1747e45"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr class="memitem:a1877467844b7b9ab51bd6600e3a93eb0"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_block_solver.html#a1877467844b7b9ab51bd6600e3a93eb0">deallocate</a> ()</td></tr>
<tr class="separator:a1877467844b7b9ab51bd6600e3a93eb0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0075af2df18364cf99fd80f813b8ce4b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_block_solver.html#a0075af2df18364cf99fd80f813b8ce4b">resize</a> (int *blockPoseIndices, int numPoseBlocks, int *blockLandmarkIndices, int numLandmarkBlocks, int totalDim)</td></tr>
<tr class="separator:a0075af2df18364cf99fd80f813b8ce4b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_methods_classg2o_1_1_solver"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classg2o_1_1_solver')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classg2o_1_1_solver.html">g2o::Solver</a></td></tr>
<tr class="memitem:ad1f85839e85f3e2c49112fb7e2b843ad inherit pro_methods_classg2o_1_1_solver"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_solver.html#ad1f85839e85f3e2c49112fb7e2b843ad">resizeVector</a> (size_t sx)</td></tr>
<tr class="separator:ad1f85839e85f3e2c49112fb7e2b843ad inherit pro_methods_classg2o_1_1_solver"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a>
Protected Attributes</h2></td></tr>
<tr class="memitem:aafddeb1d0a4218fc9c3c77169e20f81a"><td class="memItemLeft" align="right" valign="top">double *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_block_solver.html#aafddeb1d0a4218fc9c3c77169e20f81a">_bschur</a></td></tr>
<tr class="separator:aafddeb1d0a4218fc9c3c77169e20f81a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a416f480d4b27d7f8962ae7ae363f2e32"><td class="memItemLeft" align="right" valign="top">double *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_block_solver.html#a416f480d4b27d7f8962ae7ae363f2e32">_coefficients</a></td></tr>
<tr class="separator:a416f480d4b27d7f8962ae7ae363f2e32"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3bc5b19faa2c45e2c04a6743b3a083de"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="classg2o_1_1_block_solver.html#a19ade5e432f32e46557192ae75074304">LandmarkVectorType</a>, Eigen::aligned_allocator&lt; <a class="el" href="classg2o_1_1_block_solver.html#a19ade5e432f32e46557192ae75074304">LandmarkVectorType</a> &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_block_solver.html#a3bc5b19faa2c45e2c04a6743b3a083de">_diagonalBackupLandmark</a></td></tr>
<tr class="separator:a3bc5b19faa2c45e2c04a6743b3a083de"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3cb6f86c522c2ea26478ad44b7c32f76"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="classg2o_1_1_block_solver.html#a65d51b9281e2e2597df05eb00801ee76">PoseVectorType</a>, Eigen::aligned_allocator&lt; <a class="el" href="classg2o_1_1_block_solver.html#a65d51b9281e2e2597df05eb00801ee76">PoseVectorType</a> &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_block_solver.html#a3cb6f86c522c2ea26478ad44b7c32f76">_diagonalBackupPose</a></td></tr>
<tr class="separator:a3cb6f86c522c2ea26478ad44b7c32f76"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad6a1a8f17c8fb854962a8204c79bc981"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classg2o_1_1_sparse_block_matrix_diagonal.html">SparseBlockMatrixDiagonal</a>&lt; <a class="el" href="classg2o_1_1_block_solver.html#afd898a666343291129d37a979e23ded6">LandmarkMatrixType</a> &gt; *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_block_solver.html#ad6a1a8f17c8fb854962a8204c79bc981">_DInvSchur</a></td></tr>
<tr class="separator:ad6a1a8f17c8fb854962a8204c79bc981"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab375a5fac964182442f38288bd8a103a"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_block_solver.html#ab375a5fac964182442f38288bd8a103a">_doSchur</a></td></tr>
<tr class="separator:ab375a5fac964182442f38288bd8a103a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a88d4c24df24a8fb72be1a4e4cff03d71"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classg2o_1_1_sparse_block_matrix.html">SparseBlockMatrix</a>&lt; <a class="el" href="classg2o_1_1_block_solver.html#afd898a666343291129d37a979e23ded6">LandmarkMatrixType</a> &gt; *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_block_solver.html#a88d4c24df24a8fb72be1a4e4cff03d71">_Hll</a></td></tr>
<tr class="separator:a88d4c24df24a8fb72be1a4e4cff03d71"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0f6051339990e95aa587145a8a6f4f5f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classg2o_1_1_sparse_block_matrix.html">SparseBlockMatrix</a>&lt; <a class="el" href="classg2o_1_1_block_solver.html#a96bf60b923f816086cd2f24de38736ec">PoseLandmarkMatrixType</a> &gt; *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_block_solver.html#a0f6051339990e95aa587145a8a6f4f5f">_Hpl</a></td></tr>
<tr class="separator:a0f6051339990e95aa587145a8a6f4f5f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab54eb7bb13f8b3a8a5f135a98f2050ec"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classg2o_1_1_sparse_block_matrix_c_c_s.html">SparseBlockMatrixCCS</a>&lt; <a class="el" href="classg2o_1_1_block_solver.html#a96bf60b923f816086cd2f24de38736ec">PoseLandmarkMatrixType</a> &gt; *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_block_solver.html#ab54eb7bb13f8b3a8a5f135a98f2050ec">_HplCCS</a></td></tr>
<tr class="separator:ab54eb7bb13f8b3a8a5f135a98f2050ec"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac222d4342825ed8632a87b4f5be94618"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classg2o_1_1_sparse_block_matrix.html">SparseBlockMatrix</a>&lt; <a class="el" href="classg2o_1_1_block_solver.html#a8c7c43d361bd31e3e0353889ba703bc0">PoseMatrixType</a> &gt; *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_block_solver.html#ac222d4342825ed8632a87b4f5be94618">_Hpp</a></td></tr>
<tr class="separator:ac222d4342825ed8632a87b4f5be94618"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a46977934a3e4fb0cd36bc4181ed3ec0e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classg2o_1_1_sparse_block_matrix.html">SparseBlockMatrix</a>&lt; <a class="el" href="classg2o_1_1_block_solver.html#a8c7c43d361bd31e3e0353889ba703bc0">PoseMatrixType</a> &gt; *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_block_solver.html#a46977934a3e4fb0cd36bc4181ed3ec0e">_Hschur</a></td></tr>
<tr class="separator:a46977934a3e4fb0cd36bc4181ed3ec0e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acea4b8ea8db5a29b63bea4bc568b0b26"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classg2o_1_1_sparse_block_matrix_c_c_s.html">SparseBlockMatrixCCS</a>&lt; <a class="el" href="classg2o_1_1_block_solver.html#a8c7c43d361bd31e3e0353889ba703bc0">PoseMatrixType</a> &gt; *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_block_solver.html#acea4b8ea8db5a29b63bea4bc568b0b26">_HschurTransposedCCS</a></td></tr>
<tr class="separator:acea4b8ea8db5a29b63bea4bc568b0b26"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a676a4ef473ccaecb23050284e19659af"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classg2o_1_1_linear_solver.html">LinearSolver</a>&lt; <a class="el" href="classg2o_1_1_block_solver.html#a8c7c43d361bd31e3e0353889ba703bc0">PoseMatrixType</a> &gt; *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_block_solver.html#a676a4ef473ccaecb23050284e19659af">_linearSolver</a></td></tr>
<tr class="separator:a676a4ef473ccaecb23050284e19659af"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab98231b7ca8e6d7f138c33d26c6f4326"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_block_solver.html#ab98231b7ca8e6d7f138c33d26c6f4326">_numLandmarks</a></td></tr>
<tr class="separator:ab98231b7ca8e6d7f138c33d26c6f4326"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a709259fc290d746f4174d25410b7458a"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_block_solver.html#a709259fc290d746f4174d25410b7458a">_numPoses</a></td></tr>
<tr class="separator:a709259fc290d746f4174d25410b7458a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a13a49b5aac8ae3b12ed0c349fc0788e7"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_block_solver.html#a13a49b5aac8ae3b12ed0c349fc0788e7">_sizeLandmarks</a></td></tr>
<tr class="separator:a13a49b5aac8ae3b12ed0c349fc0788e7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a39ec000379885ce09cdd8c23ab6d4567"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_block_solver.html#a39ec000379885ce09cdd8c23ab6d4567">_sizePoses</a></td></tr>
<tr class="separator:a39ec000379885ce09cdd8c23ab6d4567"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_attribs_classg2o_1_1_solver"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classg2o_1_1_solver')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="classg2o_1_1_solver.html">g2o::Solver</a></td></tr>
<tr class="memitem:a6a1492959487c279747a8f3097a5f04e inherit pro_attribs_classg2o_1_1_solver"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_solver.html#a6a1492959487c279747a8f3097a5f04e">_additionalVectorSpace</a></td></tr>
<tr class="separator:a6a1492959487c279747a8f3097a5f04e inherit pro_attribs_classg2o_1_1_solver"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a52c92c9bf5db0da3322da3a02dbeb245 inherit pro_attribs_classg2o_1_1_solver"><td class="memItemLeft" align="right" valign="top">double *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_solver.html#a52c92c9bf5db0da3322da3a02dbeb245">_b</a></td></tr>
<tr class="separator:a52c92c9bf5db0da3322da3a02dbeb245 inherit pro_attribs_classg2o_1_1_solver"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8b7f6d4e00e3734f5ed9bd3dfac201a6 inherit pro_attribs_classg2o_1_1_solver"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_solver.html#a8b7f6d4e00e3734f5ed9bd3dfac201a6">_isLevenberg</a></td></tr>
<tr class="memdesc:a8b7f6d4e00e3734f5ed9bd3dfac201a6 inherit pro_attribs_classg2o_1_1_solver"><td class="mdescLeft">&#160;</td><td class="mdescRight">the system we gonna solve is a Levenberg-Marquardt system  <a href="classg2o_1_1_solver.html#a8b7f6d4e00e3734f5ed9bd3dfac201a6">More...</a><br /></td></tr>
<tr class="separator:a8b7f6d4e00e3734f5ed9bd3dfac201a6 inherit pro_attribs_classg2o_1_1_solver"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a263003f9053537f92d5d019ce5c53771 inherit pro_attribs_classg2o_1_1_solver"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_solver.html#a263003f9053537f92d5d019ce5c53771">_maxXSize</a></td></tr>
<tr class="separator:a263003f9053537f92d5d019ce5c53771 inherit pro_attribs_classg2o_1_1_solver"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aff3275985d996329df15070348c21292 inherit pro_attribs_classg2o_1_1_solver"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classg2o_1_1_sparse_optimizer.html">SparseOptimizer</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_solver.html#aff3275985d996329df15070348c21292">_optimizer</a></td></tr>
<tr class="separator:aff3275985d996329df15070348c21292 inherit pro_attribs_classg2o_1_1_solver"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a94ee5e303a754f4ff338a7b032c214ae inherit pro_attribs_classg2o_1_1_solver"><td class="memItemLeft" align="right" valign="top">double *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_solver.html#a94ee5e303a754f4ff338a7b032c214ae">_x</a></td></tr>
<tr class="separator:a94ee5e303a754f4ff338a7b032c214ae inherit pro_attribs_classg2o_1_1_solver"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abcf7731347f14915bd9ba963021ea830 inherit pro_attribs_classg2o_1_1_solver"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_solver.html#abcf7731347f14915bd9ba963021ea830">_xSize</a></td></tr>
<tr class="separator:abcf7731347f14915bd9ba963021ea830 inherit pro_attribs_classg2o_1_1_solver"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><h3>template&lt;typename Traits&gt;<br />
class g2o::BlockSolver&lt; Traits &gt;</h3>

<p>Implementation of a solver operating on the blocks of the Hessian. </p>
</div><h2 class="groupheader">Member Typedef Documentation</h2>
<a id="a465b1252905d90fd69b4243716620c45"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Traits &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">typedef Traits::LandmarkHessianType <a class="el" href="classg2o_1_1_block_solver.html">g2o::BlockSolver</a>&lt; Traits &gt;::<a class="el" href="classg2o_1_1_block_solver.html#a465b1252905d90fd69b4243716620c45">LandmarkHessianType</a></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="afd898a666343291129d37a979e23ded6"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Traits &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">typedef Traits::LandmarkMatrixType <a class="el" href="classg2o_1_1_block_solver.html">g2o::BlockSolver</a>&lt; Traits &gt;::<a class="el" href="classg2o_1_1_block_solver.html#afd898a666343291129d37a979e23ded6">LandmarkMatrixType</a></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="a19ade5e432f32e46557192ae75074304"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Traits &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">typedef Traits::LandmarkVectorType <a class="el" href="classg2o_1_1_block_solver.html">g2o::BlockSolver</a>&lt; Traits &gt;::<a class="el" href="classg2o_1_1_block_solver.html#a19ade5e432f32e46557192ae75074304">LandmarkVectorType</a></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="a717fa8cb1dd5a212e41d8ebef67955e6"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Traits &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">typedef Traits::LinearSolverType <a class="el" href="classg2o_1_1_block_solver.html">g2o::BlockSolver</a>&lt; Traits &gt;::<a class="el" href="classg2o_1_1_block_solver.html#a717fa8cb1dd5a212e41d8ebef67955e6">LinearSolverType</a></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="a0e7f862860a1e3391cec3cfaf69c48be"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Traits &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">typedef Traits::PoseHessianType <a class="el" href="classg2o_1_1_block_solver.html">g2o::BlockSolver</a>&lt; Traits &gt;::<a class="el" href="classg2o_1_1_block_solver.html#a0e7f862860a1e3391cec3cfaf69c48be">PoseHessianType</a></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="aed8b44e394d2f19ca03c87adf90cc97c"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Traits &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">typedef Traits::PoseLandmarkHessianType <a class="el" href="classg2o_1_1_block_solver.html">g2o::BlockSolver</a>&lt; Traits &gt;::<a class="el" href="classg2o_1_1_block_solver.html#aed8b44e394d2f19ca03c87adf90cc97c">PoseLandmarkHessianType</a></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="a96bf60b923f816086cd2f24de38736ec"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Traits &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">typedef Traits::PoseLandmarkMatrixType <a class="el" href="classg2o_1_1_block_solver.html">g2o::BlockSolver</a>&lt; Traits &gt;::<a class="el" href="classg2o_1_1_block_solver.html#a96bf60b923f816086cd2f24de38736ec">PoseLandmarkMatrixType</a></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="a8c7c43d361bd31e3e0353889ba703bc0"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Traits &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">typedef Traits::PoseMatrixType <a class="el" href="classg2o_1_1_block_solver.html">g2o::BlockSolver</a>&lt; Traits &gt;::<a class="el" href="classg2o_1_1_block_solver.html#a8c7c43d361bd31e3e0353889ba703bc0">PoseMatrixType</a></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="a65d51b9281e2e2597df05eb00801ee76"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Traits &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">typedef Traits::PoseVectorType <a class="el" href="classg2o_1_1_block_solver.html">g2o::BlockSolver</a>&lt; Traits &gt;::<a class="el" href="classg2o_1_1_block_solver.html#a65d51b9281e2e2597df05eb00801ee76">PoseVectorType</a></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a04701a223a14708c9c84ce4d7e7af3f6"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Traits &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classg2o_1_1_block_solver.html">g2o::BlockSolver</a>&lt; Traits &gt;::<a class="el" href="classg2o_1_1_block_solver.html">BlockSolver</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classg2o_1_1_block_solver.html#a717fa8cb1dd5a212e41d8ebef67955e6">LinearSolverType</a> *&#160;</td>
          <td class="paramname"><em>linearSolver</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>allocate a block solver ontop of the underlying linear solver. </p>
<p>NOTE: The <a class="el" href="classg2o_1_1_block_solver.html" title="Implementation of a solver operating on the blocks of the Hessian. ">BlockSolver</a> assumes exclusive access to the linear solver and will therefore free the pointer in its destructor. </p>

</div>
</div>
<a id="a7587b13ec3494c00ad95a3d0ce7fd9a9"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Traits &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classg2o_1_1_block_solver.html">g2o::BlockSolver</a>&lt; Traits &gt;::~<a class="el" href="classg2o_1_1_block_solver.html">BlockSolver</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a17e4392d3cca9a9d7cf38bb46d073b86"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Traits &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classg2o_1_1_block_solver.html">g2o::BlockSolver</a>&lt; Traits &gt;::buildStructure </td>
          <td>(</td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>zeroBlocks</em> = <code>false</code></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>build the structure of the system </p>

<p>Implements <a class="el" href="classg2o_1_1_solver.html#a6c93ac0f528ffe05867d33150c54f46f">g2o::Solver</a>.</p>

</div>
</div>
<a id="a2654a8d52f38e5ce23720a8de302e2e7"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Traits &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classg2o_1_1_block_solver.html">g2o::BlockSolver</a>&lt; Traits &gt;::buildSystem </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>build the current system </p>

<p>Implements <a class="el" href="classg2o_1_1_solver.html#ac1565e85d5ca68a87ad7f06f8164a8c0">g2o::Solver</a>.</p>

</div>
</div>
<a id="ac21cd7e2c9b8a1414f7a2dccb0d30a0e"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Traits &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classg2o_1_1_block_solver.html">g2o::BlockSolver</a>&lt; Traits &gt;::computeMarginals </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classg2o_1_1_sparse_block_matrix.html">SparseBlockMatrix</a>&lt; MatrixXd &gt; &amp;&#160;</td>
          <td class="paramname"><em>spinv</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::vector&lt; std::pair&lt; int, int &gt; &gt; &amp;&#160;</td>
          <td class="paramname"><em>blockIndices</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>computes the block diagonal elements of the pattern specified in the input and stores them in given <a class="el" href="classg2o_1_1_sparse_block_matrix.html" title="Sparse matrix which uses blocks. ">SparseBlockMatrix</a> </p>

<p>Implements <a class="el" href="classg2o_1_1_solver.html#afc33768e6c024e11d9e3c9d938b59b7f">g2o::Solver</a>.</p>

</div>
</div>
<a id="a1877467844b7b9ab51bd6600e3a93eb0"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Traits &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classg2o_1_1_block_solver.html">g2o::BlockSolver</a>&lt; Traits &gt;::deallocate </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a8bf01018abc3bfddfa3b29a380a1d6cb"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Traits &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classg2o_1_1_block_solver.html">g2o::BlockSolver</a>&lt; Traits &gt;::init </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classg2o_1_1_sparse_optimizer.html">SparseOptimizer</a> *&#160;</td>
          <td class="paramname"><em>optimizer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>online</em> = <code>false</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>initialize the solver, called once before the first iteration </p>

<p>Implements <a class="el" href="classg2o_1_1_solver.html#a532174e1ee53642880d2d59c128b037b">g2o::Solver</a>.</p>

</div>
</div>
<a id="af71279eea2391daa4d7528da28107f1c"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Traits &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classg2o_1_1_linear_solver.html">LinearSolver</a>&lt;<a class="el" href="classg2o_1_1_block_solver.html#a8c7c43d361bd31e3e0353889ba703bc0">PoseMatrixType</a>&gt;* <a class="el" href="classg2o_1_1_block_solver.html">g2o::BlockSolver</a>&lt; Traits &gt;::linearSolver </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a6eb8f0729e8bcd760e629421cfa7202c"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Traits &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void <a class="el" href="classg2o_1_1_block_solver.html">g2o::BlockSolver</a>&lt; Traits &gt;::multiplyHessian </td>
          <td>(</td>
          <td class="paramtype">double *&#160;</td>
          <td class="paramname"><em>dest</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const double *&#160;</td>
          <td class="paramname"><em>src</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>compute dest = H * src </p>

<p>Implements <a class="el" href="classg2o_1_1_block_solver_base.html#a4ff7072751bfa1b7fcf91f8219e18e13">g2o::BlockSolverBase</a>.</p>

</div>
</div>
<a id="a0075af2df18364cf99fd80f813b8ce4b"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Traits &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classg2o_1_1_block_solver.html">g2o::BlockSolver</a>&lt; Traits &gt;::resize </td>
          <td>(</td>
          <td class="paramtype">int *&#160;</td>
          <td class="paramname"><em>blockPoseIndices</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>numPoseBlocks</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&#160;</td>
          <td class="paramname"><em>blockLandmarkIndices</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>numLandmarkBlocks</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>totalDim</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a2136931d7aa2f54df5207556c4685809"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Traits &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classg2o_1_1_block_solver.html">g2o::BlockSolver</a>&lt; Traits &gt;::restoreDiagonal </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>restore a previosly made backup of the diagonal </p>

<p>Implements <a class="el" href="classg2o_1_1_solver.html#a3c40dae9b999c4d18e57b02fd0e0ade2">g2o::Solver</a>.</p>

</div>
</div>
<a id="a51563178d31f3eae6ec61993ea069a77"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Traits &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classg2o_1_1_block_solver.html">g2o::BlockSolver</a>&lt; Traits &gt;::saveHessian </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>write the hessian to disk using the specified file name </p>

<p>Implements <a class="el" href="classg2o_1_1_solver.html#a14852543c4dc3f3e7088efe03aa135eb">g2o::Solver</a>.</p>

</div>
</div>
<a id="a382173946f1dd929a625e3708c959883"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Traits &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool <a class="el" href="classg2o_1_1_block_solver.html">g2o::BlockSolver</a>&lt; Traits &gt;::schur </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>should the solver perform the schur complement or not </p>

<p>Implements <a class="el" href="classg2o_1_1_solver.html#acc8d6a8ae7847a157d4a2f44aea14c74">g2o::Solver</a>.</p>

</div>
</div>
<a id="acc63a23e5b35e4f72d46dc22719aa56f"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Traits &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classg2o_1_1_block_solver.html">g2o::BlockSolver</a>&lt; Traits &gt;::setLambda </td>
          <td>(</td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>lambda</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>backup</em> = <code>false</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>update the system while performing Levenberg, i.e., modifying the diagonal components of A by doing += lambda along the main diagonal of the Matrix. </p>
<p>Note that this function may be called with a positive and a negative lambda. The latter is used to undo a former modification. If backup is true, then the solver should store a backup of the diagonal, which can be restored by <a class="el" href="classg2o_1_1_block_solver.html#a2136931d7aa2f54df5207556c4685809" title="restore a previosly made backup of the diagonal ">restoreDiagonal()</a> </p>

<p>Implements <a class="el" href="classg2o_1_1_solver.html#a94a0d5196c7859c6c37fc2368ac56be3">g2o::Solver</a>.</p>

</div>
</div>
<a id="a6dd8e7e7a099410005cb96ff874d8866"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Traits &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void <a class="el" href="classg2o_1_1_block_solver.html">g2o::BlockSolver</a>&lt; Traits &gt;::setSchur </td>
          <td>(</td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>s</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Implements <a class="el" href="classg2o_1_1_solver.html#a30134c828054375b1cc16ede2a879761">g2o::Solver</a>.</p>

</div>
</div>
<a id="a1bff5dc13e3408fa76c019347104acd0"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Traits &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classg2o_1_1_block_solver.html">g2o::BlockSolver</a>&lt; Traits &gt;::setWriteDebug </td>
          <td>(</td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>write debug output of the Hessian if system is not positive definite </p>

<p>Implements <a class="el" href="classg2o_1_1_solver.html#ad3ef2a487d991363ba86af2840b0d7cd">g2o::Solver</a>.</p>

</div>
</div>
<a id="a589a75a131cce100c1945ad2786214d7"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Traits &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classg2o_1_1_block_solver.html">g2o::BlockSolver</a>&lt; Traits &gt;::solve </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>solve Ax = b </p>

<p>Implements <a class="el" href="classg2o_1_1_solver.html#a9c359a886db57f2f81e54a2113f3bd38">g2o::Solver</a>.</p>

</div>
</div>
<a id="a68dc822ce48e80ceacce69c7bd029674"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Traits &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool <a class="el" href="classg2o_1_1_block_solver.html">g2o::BlockSolver</a>&lt; Traits &gt;::supportsSchur </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>does this solver support the Schur complement for solving a system consisting of poses and landmarks. </p>
<p>Re-implemement in a derived solver, if your solver supports it. </p>

<p>Reimplemented from <a class="el" href="classg2o_1_1_solver.html#a36c68f7bc0b8864ee7722bc3c06de554">g2o::Solver</a>.</p>

</div>
</div>
<a id="a662473598270cdf89075607f87440759"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Traits &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classg2o_1_1_block_solver.html">g2o::BlockSolver</a>&lt; Traits &gt;::updateStructure </td>
          <td>(</td>
          <td class="paramtype">const std::vector&lt; <a class="el" href="classg2o_1_1_hyper_graph_1_1_vertex.html">HyperGraph::Vertex</a> *&gt; &amp;&#160;</td>
          <td class="paramname"><em>vset</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classg2o_1_1_hyper_graph.html#a5e2970e236c0dcb4eff7c205d7b6b4ae">HyperGraph::EdgeSet</a> &amp;&#160;</td>
          <td class="paramname"><em>edges</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>update the structures for online processing </p>

<p>Implements <a class="el" href="classg2o_1_1_solver.html#aeca71878e37081b6138f90ac60ec1f89">g2o::Solver</a>.</p>

</div>
</div>
<a id="aab81798b80dcb6c4182fa1d510914234"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Traits &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool <a class="el" href="classg2o_1_1_block_solver.html">g2o::BlockSolver</a>&lt; Traits &gt;::writeDebug </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Implements <a class="el" href="classg2o_1_1_solver.html#a0f6f14940eccea0f9bf9e2ea144c9b4d">g2o::Solver</a>.</p>

</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a id="aafddeb1d0a4218fc9c3c77169e20f81a"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Traits &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">double* <a class="el" href="classg2o_1_1_block_solver.html">g2o::BlockSolver</a>&lt; Traits &gt;::_bschur</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a416f480d4b27d7f8962ae7ae363f2e32"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Traits &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">double* <a class="el" href="classg2o_1_1_block_solver.html">g2o::BlockSolver</a>&lt; Traits &gt;::_coefficients</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a3bc5b19faa2c45e2c04a6743b3a083de"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Traits &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">std::vector&lt;<a class="el" href="classg2o_1_1_block_solver.html#a19ade5e432f32e46557192ae75074304">LandmarkVectorType</a>, Eigen::aligned_allocator&lt;<a class="el" href="classg2o_1_1_block_solver.html#a19ade5e432f32e46557192ae75074304">LandmarkVectorType</a>&gt; &gt; <a class="el" href="classg2o_1_1_block_solver.html">g2o::BlockSolver</a>&lt; Traits &gt;::_diagonalBackupLandmark</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a3cb6f86c522c2ea26478ad44b7c32f76"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Traits &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">std::vector&lt;<a class="el" href="classg2o_1_1_block_solver.html#a65d51b9281e2e2597df05eb00801ee76">PoseVectorType</a>, Eigen::aligned_allocator&lt;<a class="el" href="classg2o_1_1_block_solver.html#a65d51b9281e2e2597df05eb00801ee76">PoseVectorType</a>&gt; &gt; <a class="el" href="classg2o_1_1_block_solver.html">g2o::BlockSolver</a>&lt; Traits &gt;::_diagonalBackupPose</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="ad6a1a8f17c8fb854962a8204c79bc981"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Traits &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classg2o_1_1_sparse_block_matrix_diagonal.html">SparseBlockMatrixDiagonal</a>&lt;<a class="el" href="classg2o_1_1_block_solver.html#afd898a666343291129d37a979e23ded6">LandmarkMatrixType</a>&gt;* <a class="el" href="classg2o_1_1_block_solver.html">g2o::BlockSolver</a>&lt; Traits &gt;::_DInvSchur</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="ab375a5fac964182442f38288bd8a103a"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Traits &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classg2o_1_1_block_solver.html">g2o::BlockSolver</a>&lt; Traits &gt;::_doSchur</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a88d4c24df24a8fb72be1a4e4cff03d71"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Traits &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classg2o_1_1_sparse_block_matrix.html">SparseBlockMatrix</a>&lt;<a class="el" href="classg2o_1_1_block_solver.html#afd898a666343291129d37a979e23ded6">LandmarkMatrixType</a>&gt;* <a class="el" href="classg2o_1_1_block_solver.html">g2o::BlockSolver</a>&lt; Traits &gt;::_Hll</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a0f6051339990e95aa587145a8a6f4f5f"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Traits &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classg2o_1_1_sparse_block_matrix.html">SparseBlockMatrix</a>&lt;<a class="el" href="classg2o_1_1_block_solver.html#a96bf60b923f816086cd2f24de38736ec">PoseLandmarkMatrixType</a>&gt;* <a class="el" href="classg2o_1_1_block_solver.html">g2o::BlockSolver</a>&lt; Traits &gt;::_Hpl</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="ab54eb7bb13f8b3a8a5f135a98f2050ec"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Traits &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classg2o_1_1_sparse_block_matrix_c_c_s.html">SparseBlockMatrixCCS</a>&lt;<a class="el" href="classg2o_1_1_block_solver.html#a96bf60b923f816086cd2f24de38736ec">PoseLandmarkMatrixType</a>&gt;* <a class="el" href="classg2o_1_1_block_solver.html">g2o::BlockSolver</a>&lt; Traits &gt;::_HplCCS</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="ac222d4342825ed8632a87b4f5be94618"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Traits &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classg2o_1_1_sparse_block_matrix.html">SparseBlockMatrix</a>&lt;<a class="el" href="classg2o_1_1_block_solver.html#a8c7c43d361bd31e3e0353889ba703bc0">PoseMatrixType</a>&gt;* <a class="el" href="classg2o_1_1_block_solver.html">g2o::BlockSolver</a>&lt; Traits &gt;::_Hpp</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a46977934a3e4fb0cd36bc4181ed3ec0e"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Traits &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classg2o_1_1_sparse_block_matrix.html">SparseBlockMatrix</a>&lt;<a class="el" href="classg2o_1_1_block_solver.html#a8c7c43d361bd31e3e0353889ba703bc0">PoseMatrixType</a>&gt;* <a class="el" href="classg2o_1_1_block_solver.html">g2o::BlockSolver</a>&lt; Traits &gt;::_Hschur</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="acea4b8ea8db5a29b63bea4bc568b0b26"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Traits &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classg2o_1_1_sparse_block_matrix_c_c_s.html">SparseBlockMatrixCCS</a>&lt;<a class="el" href="classg2o_1_1_block_solver.html#a8c7c43d361bd31e3e0353889ba703bc0">PoseMatrixType</a>&gt;* <a class="el" href="classg2o_1_1_block_solver.html">g2o::BlockSolver</a>&lt; Traits &gt;::_HschurTransposedCCS</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a676a4ef473ccaecb23050284e19659af"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Traits &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classg2o_1_1_linear_solver.html">LinearSolver</a>&lt;<a class="el" href="classg2o_1_1_block_solver.html#a8c7c43d361bd31e3e0353889ba703bc0">PoseMatrixType</a>&gt;* <a class="el" href="classg2o_1_1_block_solver.html">g2o::BlockSolver</a>&lt; Traits &gt;::_linearSolver</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="ab98231b7ca8e6d7f138c33d26c6f4326"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Traits &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="classg2o_1_1_block_solver.html">g2o::BlockSolver</a>&lt; Traits &gt;::_numLandmarks</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a709259fc290d746f4174d25410b7458a"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Traits &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="classg2o_1_1_block_solver.html">g2o::BlockSolver</a>&lt; Traits &gt;::_numPoses</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a13a49b5aac8ae3b12ed0c349fc0788e7"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Traits &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="classg2o_1_1_block_solver.html">g2o::BlockSolver</a>&lt; Traits &gt;::_sizeLandmarks</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a39ec000379885ce09cdd8c23ab6d4567"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Traits &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="classg2o_1_1_block_solver.html">g2o::BlockSolver</a>&lt; Traits &gt;::_sizePoses</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a2d5e499f65a71985a8256e98c1608dd9"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Traits &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const int <a class="el" href="classg2o_1_1_block_solver.html">g2o::BlockSolver</a>&lt; Traits &gt;::LandmarkDim = Traits::LandmarkDim</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a9a68f557c8e04cd76565fc45e1747e45"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Traits &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const int <a class="el" href="classg2o_1_1_block_solver.html">g2o::BlockSolver</a>&lt; Traits &gt;::PoseDim = Traits::PoseDim</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li>/home/alejandro/Desarrollo eclipse/os1/Thirdparty/g2o/g2o/core/<a class="el" href="block__solver_8h_source.html">block_solver.h</a></li>
<li>/home/alejandro/Desarrollo eclipse/os1/Thirdparty/g2o/g2o/core/<a class="el" href="block__solver_8hpp_source.html">block_solver.hpp</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="namespaceg2o.html">g2o</a></li><li class="navelem"><a class="el" href="classg2o_1_1_block_solver.html">BlockSolver</a></li>
    <li class="footer">Generated by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.12 </li>
  </ul>
</div>
</body>
</html>
